(1) Field of the Invention
The invention pertains generally to revision control of computer files. More specifically, the invention relates to allowing groups of users working independently on a common task or project to monitor whether the states of their files are aligned with each other.
(2) Description of the Related Art
A typical version control system (VCS) saves each successive version of a document so that a user may at any time compare a current version of the document with an earlier version, and may revert back to the earlier version if so desired. Version control may be combined with a cloud-based document editing platform in order to allow multiple users to modify a single document and keep track of changes. For example, the well-known Wikipedia® online encyclopedia automatically keeps track of all previous versions of articles and allows an online user to easily compare and see differences between any versions of the same article. In another example, Google Docs® cloud-based collaborative word processor allows multiple users to simultaneously make changes to a single online document while tracking changes made by each of the users. Users can see changes being made by other users in real time and may accept or reject changes as desired.
Version control systems are also commonly utilized for managing source code files in conjunction with software development. In software development, developers typically work individually on their own set of files because unfinished code by one developer will likely not compile properly and this may prevent another developer from testing an unrelated section of code. In one example solution to this problem, the Mercurial distributed revision control tool allows each developer to have their own local repository of source code files. A master repository is stored on a computer server coupled to a network accessible to the developers. Each developer works on their individual files directly, and pushes new versions of files from their local repository into the master repository when they feel that updated code is ready to be seen by other developers. Any developers working on the project may compare files in their local repositories with any version of the files stored in the master repository to see what earlier changes have been checked in. If so desired, developers may locally clone an entire earlier version taken from the master repository or may pull down individual updated files from any particular version on the master repository.
One problem with these existing central and distributed version control approaches is that, in order to benefit from the version control system, users are required to agree on the most recent (master) version of each document. If two users do not agree on a particular aspect of a document, they may enter into a so-called “edit war” where they repeatedly save conflicting changes into the master version. Alternative technology and further improvements to monitoring alignment of documents between groups of users would be beneficial.